package leetcode;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * 给你一个数组 candies 和一个整数 extraCandies ，
 * 其中 candies[i] 代表第 i 个孩子拥有的糖果数目。
 * 对每一个孩子，检查是否存在一种方案，将额外的 extraCandies 个糖果分配给孩子们之后，
 * 此孩子有 最多 的糖果。注意，允许有多个孩子同时拥有 最多 的糖果数目。
 * <p>
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode-cn.com/problems/kids-with-the-greatest-number-of-candies
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 *
 * @author Europa
 */
public class Num1431 {

    public List<Boolean> kidsWithCandies(int[] candies, int extraCandies) {
        List<Boolean> list = new ArrayList<>();
        // 复制一份数组然后排序获得最大值
        int[] ints = new int[candies.length];
        System.arraycopy(candies, 0, ints, 0, candies.length);
        Arrays.sort(ints);
        int max = ints[ints.length - 1];
        // 判断每个孩子手中的糖果数 + 额外的 是否 >= 最大值
        for (int i : candies) {
            list.add(i + extraCandies >= max);
        }

        return list;
    }

    public static void main(String[] args) {
        Num1431 num1431 = new Num1431();
        int[] ints = {2, 3, 5, 1, 3};
        int i = 3;


        List<Boolean> booleans = num1431.kidsWithCandies(ints, i);
        booleans.forEach(System.out::println);
    }
}
